#ifndef STUDENT_H
#define STUDENT_H

#include "Person.h"
#include <string>

class Student : public Person {
private:
    std::string major;
    double gpa;
    static int studentCount;

public:
    Student(const std::string& name, int age, const std::string& id, 
           const std::string& major, double gpa);
    Student(const Student& other);
    Student& operator=(const Student& other);
    Student(Student&& other) noexcept;
    ~Student() override;

    void display() const override;
    double calculateFee() const override;
    void setGpa(double gpa);
    void setGpa(double gpa, bool withScholarship);
    bool operator<(const Student& other) const;
    static int getStudentCount();
    std::string getMajor() const;
};

#endif

